//======================================================================================
//  Apache License, Version 2.0
//  Notes:Use this command to anonymously check out the latest project source code:
//  Non-members may check out a read-only working copy anonymously over HTTP.
//  SVN checkout http://YHHLineCommandWsp.googlecode.com/svn/trunk/ 
//
//  Author:		Kevin Yang
//  Email:		Bigearrabbit@qq.com
//
//  DATE:		2013-4-6
//
//  File Name:	
//
//  Notes:
//
//======================================================================================
#ifndef YHHELineCommandChild_H
#define YHHELineCommandChild_H

// System Framework
#include "CATBaseUnknown.h" // needed to derive from CATBaseUnknown
#include "YHHSpecAttrAccess.h"
#include "YHHLineCommandChildParam.h"

class CATISpecObject;

/**
 * Class extending the object "YHHLineCommandChild".
 *  
 * It implements the interface :
 *      YHHLineCommandInterfaces.YHHILineCommand
 */

class YHHELineCommandChild: public CATBaseUnknown
{
    CATDeclareClass;
    
public:
    
    // Standard constructors and destructors for an implementation class
    // -----------------------------------------------------------------
    YHHELineCommandChild ();
    virtual ~YHHELineCommandChild ();
public:
	/// <summary>SetParams</summary>
	/// <return>HRESULT</return>
	/// <author>Kevin Yang</author>
	/// <date>2013-4-4</date>
	HRESULT GetParams(YHHLineCommandChildParam & oValue)const; 

	/// <summary>SetParams</summary>
	/// <return>HRESULT</return>
	/// <author>Kevin Yang</author>
	/// <date>2013-4-4</date>
	HRESULT SetParams(const YHHLineCommandChildParam & iValue);

	//DO NOT EDIT IN THE CONTROL CODE OF "KEVIN CAA WIZARD SECTION"
	//START KEVIN CAA WIZARD SECTION YHHLineCommandChild IMPLEMENTS HEAD GET
public://Get

	/// <summary>ErrMsg</summary>
	/// <return>CATUnicodeString</return>
	/// <author>Kevin Yang</author>
	/// <date>2013-4-5</date>
	/// <remarks></remarks>
	CATUnicodeString GetErrMsg() const;//0

	/// <summary>Start Point</summary>
	/// <return>CATISpecObject_var</return>
	/// <author>Kevin Yang</author>
	/// <date>2013-4-2</date>
	/// <remarks></remarks>
	CATISpecObject_var GetStartPoint() const;//1

	/// <summary>Line Direction</summary>
	/// <return>CATISpecObject_var</return>
	/// <author>Kevin Yang</author>
	/// <date>2013-4-2</date>
	/// <remarks></remarks>
	CATISpecObject_var GetLineDirection() const;//2

	/// <summary>Length Sign</summary>
	/// <return>int</return>
	/// <author>Kevin Yang</author>
	/// <date>2013-4-2</date>
	/// <remarks></remarks>
	int GetLengthSign() const;//3

	/// <summary>Length Start</summary>
	/// <return>double</return>
	/// <author>Kevin Yang</author>
	/// <date>2013-4-2</date>
	/// <remarks></remarks>
	double GetLengthStart() const;//4

	/// <summary>Length End</summary>
	/// <return>double</return>
	/// <author>Kevin Yang</author>
	/// <date>2013-4-2</date>
	/// <remarks></remarks>
	double GetLengthEnd() const;//5
	//END KEVIN CAA WIZARD SECTION YHHLineCommandChild IMPLEMENTS HEAD GET

	//DO NOT EDIT IN THE CONTROL CODE OF "KEVIN CAA WIZARD SECTION"
	//START KEVIN CAA WIZARD SECTION YHHLineCommandChild IMPLEMENTS HEAD SET
public://Set

	/// <summary>ErrMsg</summary>
	/// <param name="iValue">CATUnicodeString</param>
	/// <author>Kevin Yang</author>
	/// <date>2013-4-5</date>
	/// <remarks></remarks>
	HRESULT SetErrMsg(const CATUnicodeString & iValue);//0

	/// <summary>Start Point</summary>
	/// <param name="iValue">CATISpecObject_var</param>
	/// <author>Kevin Yang</author>
	/// <date>2013-4-2</date>
	/// <remarks></remarks>
	HRESULT SetStartPoint(const CATISpecObject_var & iValue);//1

	/// <summary>Line Direction</summary>
	/// <param name="iValue">CATISpecObject_var</param>
	/// <author>Kevin Yang</author>
	/// <date>2013-4-2</date>
	/// <remarks></remarks>
	HRESULT SetLineDirection(const CATISpecObject_var & iValue);//2

	/// <summary>Length Sign</summary>
	/// <param name="iValue">int</param>
	/// <author>Kevin Yang</author>
	/// <date>2013-4-2</date>
	/// <remarks></remarks>
	HRESULT SetLengthSign(const int & iValue);//3

	/// <summary>Length Start</summary>
	/// <param name="iValue">double</param>
	/// <author>Kevin Yang</author>
	/// <date>2013-4-2</date>
	/// <remarks></remarks>
	HRESULT SetLengthStart(const double & iValue);//4

	/// <summary>Length End</summary>
	/// <param name="iValue">double</param>
	/// <author>Kevin Yang</author>
	/// <date>2013-4-2</date>
	/// <remarks></remarks>
	HRESULT SetLengthEnd(const double & iValue);//5
	//END KEVIN CAA WIZARD SECTION YHHLineCommandChild IMPLEMENTS HEAD SET
    
private:
    // The copy constructor and the equal operator must not be implemented
    // -------------------------------------------------------------------
    YHHELineCommandChild (YHHELineCommandChild &);
    YHHELineCommandChild& operator=(YHHELineCommandChild&);
	YHHSpecAttrAccess		m_YHHSpecRW;//for 	YHHSpecAttrAccess
};

#endif
